package com.book.core.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;

import com.book.core.mode.UpdateGroup;
import lombok.Data;

import javax.validation.constraints.*;

/**
 * 读者信息表
 * @TableName readers
 */
@TableName(value ="readers")
@Data
public class Readers implements Serializable {
    /**
     * 读者ID
     */
    @TableId(type = IdType.AUTO)
    @NotNull(message = "读者ID不能为空", groups = {UpdateGroup.class})
    private Long readerId;

    /**
     * 读者证编号
     */
    @NotBlank(message = "读者证编号不能为空")
    private String readerNo;

    /**
     * 读者类型ID
     */
    @NotNull(message = "读者类型ID不能为空")
    private Integer typeId;

    /**
     * 姓名
     */
    @NotNull(message = "姓名不能为空")
    private String name;

    /**
     * 性别(0:男 1:女 2:未知)
     */
    @Max(value = 2, message = "性别值不能大于2")
    @Min(value = 0, message = "性别值不能小于0")
    private Integer gender;

    /**
     * 出生日期
     */
    private Date birthDate;

    /**
     * 身份证号
     */
    private String idCard;

    /**
     * 联系电话
     */
    private String phone;

    /**
     * 电子邮箱
     */
    @Email(message = "邮箱格式不正确")
    private String email;

    /**
     * 联系地址
     */
    private String address;

    /**
     * 注册日期
     */
    private Date registerDate;


    /**
     * 状态(0:正常 1:挂失 2:注销 3:黑名单)
     */
    private Integer status;

    /**
     * 备注信息
     */
    private String memo;

    /**
     * 创建时间
     */
    private Date createdTime;

    /**
     * 更新时间
     */
    private Date updatedTime;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}
